1. Field of the Invention
The present invention generally relates to computer systems, specifically, input devices for a computer system, such as a graphical pointing device (mouse) or keyboard, and more particularly to an improved system for automatically identifying what type of keyboard (i.e., language) is attached to the computer.
2. Description of the Related Art
A conventional computer system includes a microprocessor, or central processing unit (CPU), connected to several peripheral devices, and to a system memory device (random access memory or RAM). The peripheral devices typically include a permanent storage device (such as a hard disk drive or HDD), and several input/output (I/O) devices for the user interface. The I/O devices further include a display monitor providing video output, a keyboard allowing the user to input textual data, and a graphical pointing device (e.g., a mouse) allowing selection of graphical objects on the video display.
In early computer systems, peripheral devices (particularly keyboards) were fairly simple, and were connected to an xe2x80x9cexpansion busxe2x80x9d such as the xe2x80x9cXTxe2x80x9d bus. When a key on the keyboard was depressed, an electrical signal was passed to the CPU via the expansion bus. Personal computers (PCs) that are xe2x80x9cIBM-compatiblexe2x80x9d use scon codes for the keyboard signals. For example, the scan code for the Return (Enter) Key is the x5A (90 decimal).
As computer systems have grown in complexity, so have keyboards and the I/O interfaces. Modern computer systems have several buses, and bus bridges, which connect the keyboard to the CPU. In many PC""s, a system bus interconnects the CPU with a peripheral component interconnect (PCI) bus, which in turn is interconnected with an industry standard architecture (ISA) bus. The keyboard connects to the ISA bus. The keyboard is able to communicate with the ISA bus bridge, without the immediate involvement of the CPU. In other words, the bus bridge can act as a bus xe2x80x9cmasterxe2x80x9d to relay keystrokes to the rest of the system.
The earliest keyboards were purely alphanumeric, that is, they provided only letters, numbers, and the few special punctuation symbols that were found on typewriters. Modern keyboards, such as the xe2x80x9c101xe2x80x9d type keyboards, provide many additional keys, such as control keys used in combination with other keys (e.g., the xe2x80x9ccontrolxe2x80x9d and xe2x80x9caltxe2x80x9d keys), and programmable (xe2x80x9cfunctionxe2x80x9d) keys, and may further provide a numeric keypad integrated with the remainder of the keyboard.
Since computers are now used around the world, they must be able to support a wide variety of languages. These languages are not limited to those which use common English letter (Roman script), but further extend to languages using other alphabetical scripts, or ideograms. In order to support these different languages, a variety of key symbols and keyboard layouts are required. Providing diverse keyboard configurations presents several problems, for both keyboard manufacturers and system (CPU) designers.
Keys having different characters or symbols which are printed or engraved may be selectively placed on a keyboard in a relatively simple manner. Modern keyboards provide a base plate with the electrical connections (switches) for each possible key, and the keypads are then mounted on the base plate over the appropriate, respective key switches. Thus, a single keyboard (base plate) design may be used for multiple languages, and suitable keys may be applied at the factory according to the language desired for a particular keyboard. Often times, keyboards with blank keytops are shipped to system integration centers, which then print language-specific glyphs onto the keys.
Unfortunately, however, the keyboard electronics generally are unaware of what language is actually imprinted on the keys. Rather, the local keyboard electronics merely report the scan code for the physical location of a key switch. It is accordingly necessary for the end user of the system to inform the operating system of what type of keyboard is being used. This requirement can be bothersome, and can lead to operator error.
Once the layout or language type is determined, the operating system associates a particular translation table to convert scan codes from that layout into coded character sets, typically ASCII. Current data processing systems provide xe2x80x9cself-identifyingxe2x80x9d keyboards that electronically relate to the attached system the type (language) of keyboard being used. FIG. 1 illustrates an example of such a keyboard, which is disclosed in U.S. Pat. No. 4,459,581. That keyboard 1 includes a plurality of keys 2 which are connected to control logic 3 using sense and excitation lines. Control logic 3 is also connected to a light-emitting diode (LED) or bell logic circuit 4. A language identification (ID) circuit 5 is connected to the excitation lines. When a reset signal is sent to control logic 3, the excitation lines operate as inputs to control logic 3 and pass a language identifying signal from language ID logic 5. The language identification information is then used by the attached system to decipher the meaning of particular keystrokes.
Current self-identifying keyboards use mechanical jumpers or similar means to provide the language ID information. This information is fixed at the original keyboard electronics manufacturing site. For example, the language ID circuit 5 of FIG. 1 uses a plurality of single-pole, single-throw switch elements which are physically set at the factory. This requirement, however, means that a given keyboard, upon exiting the factory, may support only one language, i.e., a system integrator no longer has the ability to customize the keyboard for different languages. It would, therefore, be desirable to provide an improved method of identifying keyboards. It would be particularly advantageous if the method could be performed without physical manipulation of keyboard components, i.e., without opening logic unit covers, and at a system integration site, without requiring special equipment.
It is therefore one object of the present invention to provide an improved computer system.
It is another object of the present invention to provide a self-identifying keyboard for a computer system.
It is a further object of the present invention to provide such a self-identifying keyboard which may easily be customized very near the end of the system integration process.
The foregoing objects are achieved in a method of making a self-identifying keyboard, generally comprising the steps of locating a plurality of keyboard switches on a keyboard base plate, the switches being operatively connected to a keyboard processor, electrically interconnecting the keyboard processor to a data channel interface adapted to communicate with a host system, and encoding a keyboard identification (ID) value in a storage device of the keyboard processor, using the data channel interface. The keyboard value may be written to a non-volatile memory. The encoding may occur during a final check-out procedure of a computer system having the host system connected to the data channel interface. The command to write the keyboard ID value, as well as the value itself, can be transmitted via the data channel interface.
Customization logic for assigning the keyboard ID value may be loaded into the keyboard processor from a read-only memory. The customization logic and storage device may be designed to allow only one assignment of a valid ID value. The ID value may be used to identify, e.g., the keyboard language.
All objects, features, and advantages of the present invention will become apparent in the following detailed written description.